package factory.demo1;

import factory.demo1.service.IFreeGoods;
import factory.demo1.service.impl.DiscountFreeGoods;
import factory.demo1.service.impl.SmallGiftFreeGoods;
import factory.demo1.service.impl.YouKuMemberFreeGoods;

/**
 * 具体工厂: 生成免费的商品;
 *
 * 优点:封装了创建对象的过程,可以直接通过参数获取对象.把对象的创建和业务逻辑分开,这样以后就避免了修改客户代码,如果要实现新产品直接修改工厂类,而不需要修改原来的代码,降低了
 *      客户代码修改的可能性,更容易扩展;
 *
 * 缺点: 新增产品需要修改工厂类代码,违背了"开闭原则"
 *
 *
 * @author 1
 * @version 1.0
 * @description: TODO
 * @date 2024-08-28 13:47
 */
public class FreeGoodsFactory {
    public static IFreeGoods getInstance(Integer awardType) {
        IFreeGoods iFreeGoods = null;
        if (awardType == 1) {
            //打折券
            iFreeGoods = new DiscountFreeGoods();
        } else if (awardType == 2) {
            //优酷会员
            iFreeGoods = new YouKuMemberFreeGoods();
        } else if (awardType == 3) {
            //小礼品
            iFreeGoods = new SmallGiftFreeGoods();
        }
        return iFreeGoods;
    }


}
